This notebook can be used to generate basic PaletteViz plots of all the Pareto-optimal fronts with suitable colorings and point-sizes. This notebook tests the plot() fucntion from the vis.plotting.paletteviz module. All the Pareto-optimal data point files hard-coded in the dictionary pfs. Currently this notebook provides these Pareto-optimal fronts.
%reload_ext autoreload
%autoreload 2
import sys
import os
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
plt.rcParams.update({'figure.max_open_warning': 0})
from viz.plotting.utils import resize_by_tradeoff, color_by_dist, color_by_cv, enhance_color, cfs
def load_props(path):
r"""
Load CV, Mu, Ik and S from path.
"""
CV = None
cvpathf = os.path.join(path, "cv.csv")
if os.path.exists(cvpathf):
CV = np.loadtxt(cvpathf)
# load the Mu values
Mu = None
mupathf = os.path.join(path, "mu.csv")
if os.path.exists(mupathf):
Mu = np.loadtxt(mupathf)
# load the knee indices
Ik = None
kpathf = os.path.join(path, "muid.csv")
if os.path.exists(kpathf):
Ik = np.loadtxt(kpathf, dtype=int)
return CV, Mu, Ik
def decide_size_color(pf, dim, CV, Mu, Ik):
r"""
Decide point-size and color from `CV`, `Mu` and `Ik`
"""
# decide point-size
S = 1
if Mu is not None and Ik is not None:
S = resize_by_tradeoff(Mu, k=Ik)
# decide colors
# C = default_color(F.shape[0], alpha=0.5)
M = np.mean(F, axis=0)
C, D = color_by_dist(F, M)
# if CV is available, use CV to color
if CV is not None:
pfname = pf.split('-')[0]
if 'dtlz8' in pfname:
C = color_by_cv(CV, factor=cfs[pfname][int(dim[:-1])])
else:
C = color_by_cv(CV)
# enhance knee points
if Ik is not None:
C = enhance_color(C, Ik)
return S, C, D
%matplotlib inline
from viz.plotting import paletteviz
from viz.plotting.paletteviz import camera_angles_star
pfs = {'dtlz2': ['3d', '4d', '8d'], \
'dtlz2-nbi': ['3d', '4d', '8d'], \
'debmdk': ['3d', '4d', '8d'], \
'debmdk-nbi': ['3d', '4d', '8d'], \
'debmdk-all': ['3d', '4d', '8d'], \
'debmdk-all-nbi': ['3d', '4d', '8d'], \
'dtlz8': ['3d', '4d', '6d', '8d'], \
'dtlz8-nbi': ['3d', '4d', '6d', '8d'], \
'c2dtlz2': ['3d', '4d', '5d', '8d'], \
'c2dtlz2-nbi': ['3d', '4d', '5d', '8d'], \
'cdebmdk': ['3d', '4d', '8d'], \
'cdebmdk-nbi': ['3d', '4d', '8d'], \
'c0dtlz2': ['3d', '4d', '8d'], \
'c0dtlz2-nbi': ['3d', '4d', '8d'], \
'crash-nbi': ['3d'], 'crash-c1-nbi': ['3d'], 'crash-c2-nbi': ['3d'], \
'carside-nbi': ['3d'], \
'gaa-old': ['10d'], 'gaa-old-nbi': ['10d'], \
'gaa-fmincon': ['10d'], 'gaa-fmincon-nbi': ['10d'], \
'gaa-nsga3': ['10d'], 'gaa-nsga3-nbi': ['10d']}
constrained_pfs = ['dtlz8', 'dtlz8-nbi', 'c2dtlz2', 'c2dtlz2-nbi', 'cdebmdk', 'cdebmdk-nbi', \
'c0dtlz2', 'c0dtlz2-nbi', 'carside-nbi', 'gaa-old', 'gaa-old-nbi', \
'gaa-fmincon', 'gaa-fmincon-nbi', 'gaa-nsga3', 'gaa-nsga3-nbi']
for pf in list(pfs.keys()):
for dim in pfs[pf]:
fullpathf = "../data/{0:s}/{1:s}/f.csv".format(pf, dim)
if os.path.exists(fullpathf):
path, filenamef = os.path.split(fullpathf)
dirs = path.split('/')
frontname = dirs[-2]
# load the front
F = np.loadtxt(fullpathf, delimiter=',')
print(fullpathf, F.shape, dirs, frontname)
# decide color and sizes
CV, Mu, Ik = load_props(path)
S,C,D = decide_size_color(pf, dim, CV, Mu, Ik)
# make indices for knee and non-knee points
I = np.zeros(F.shape[0]).astype(bool)
I[Ik] = True
Ip, Ik = ~I, I
# fix point labels
L = np.array(["" for _ in range(F.shape[0])]).astype(object)
L[Ip] = "All Other Points"
L[Ik] = "Knee Points"
# decide what label and gradient to use for the colorbar
if pf in constrained_pfs:
cbl = "Normalized Cumulative CV"
cbg = CV
else:
cbl = "Centroid Distance"
cbg = D
euler = camera_angles_star[pf][dim] if pf in camera_angles_star else [-60, 30]
figpath = os.path.join(path, "palette-starviz.pdf")
depth_contour_path = os.path.join(path, "depth-cont-cvhull.csv")
with plt.rc_context({"text.usetex": True, "font.size": 12}):
# plot
ax = Axes3D(plt.figure())
# a more elaborate example
# paletteviz.plot(F, ax=ax, depth_contours=depth_contour_path, mode='star', \
# n_partitions=4, s=S, c=C, labels=L, euler=camera_angles_star[pf][dim], \
# colorbar=(C[Ip], cbg[Ip], cbl), verbose=True)
# a minimal example
paletteviz.plot(F, ax=ax, depth_contours=depth_contour_path, mode='star', n_partitions=4, \
s=S, c=C, euler=euler, verbose=True)
# try to remove white space as much as possible
plt.subplots_adjust(top=0.01, bottom=0, right=0.01, left=0, hspace=0, wspace=0)
# plt.margins(0,0,0)
# plt.gca().xaxis.set_major_locator(plt.NullLocator())
# plt.gca().yaxis.set_major_locator(plt.NullLocator())
# plt.gca().zaxis.set_major_locator(plt.NullLocator())
# save the fig
plt.savefig(figpath, bbox_inches='tight', dpi=150, pad_inches=0)
# show
plt.show()
../data/dtlz2/3d/f.csv (1000, 3) ['..', 'data', 'dtlz2', '3d'] dtlz2 Plotting palette-star-viz. Loading depth contours from ../data/dtlz2/3d/depth-cont-cvhull.csv.
../data/dtlz2/4d/f.csv (2000, 4) ['..', 'data', 'dtlz2', '4d'] dtlz2 Plotting palette-star-viz. Loading depth contours from ../data/dtlz2/4d/depth-cont-cvhull.csv.
../data/dtlz2/8d/f.csv (4000, 8) ['..', 'data', 'dtlz2', '8d'] dtlz2 Plotting palette-star-viz. Loading depth contours from ../data/dtlz2/8d/depth-cont-cvhull.csv.
../data/dtlz2-nbi/3d/f.csv (990, 3) ['..', 'data', 'dtlz2-nbi', '3d'] dtlz2-nbi Plotting palette-star-viz. Loading depth contours from ../data/dtlz2-nbi/3d/depth-cont-cvhull.csv.
../data/dtlz2-nbi/4d/f.csv (1771, 4) ['..', 'data', 'dtlz2-nbi', '4d'] dtlz2-nbi Plotting palette-star-viz. Loading depth contours from ../data/dtlz2-nbi/4d/depth-cont-cvhull.csv.
../data/dtlz2-nbi/8d/f.csv (3432, 8) ['..', 'data', 'dtlz2-nbi', '8d'] dtlz2-nbi Plotting palette-star-viz. Loading depth contours from ../data/dtlz2-nbi/8d/depth-cont-cvhull.csv.
../data/debmdk/3d/f.csv (1047, 3) ['..', 'data', 'debmdk', '3d'] debmdk Plotting palette-star-viz. Loading depth contours from ../data/debmdk/3d/depth-cont-cvhull.csv.
../data/debmdk/4d/f.csv (1967, 4) ['..', 'data', 'debmdk', '4d'] debmdk Plotting palette-star-viz. Loading depth contours from ../data/debmdk/4d/depth-cont-cvhull.csv.
../data/debmdk/8d/f.csv (4077, 8) ['..', 'data', 'debmdk', '8d'] debmdk Plotting palette-star-viz. Loading depth contours from ../data/debmdk/8d/depth-cont-cvhull.csv.
../data/debmdk-nbi/3d/f.csv (1143, 3) ['..', 'data', 'debmdk-nbi', '3d'] debmdk-nbi Plotting palette-star-viz. Loading depth contours from ../data/debmdk-nbi/3d/depth-cont-cvhull.csv.
../data/debmdk-nbi/4d/f.csv (2028, 4) ['..', 'data', 'debmdk-nbi', '4d'] debmdk-nbi Plotting palette-star-viz. Loading depth contours from ../data/debmdk-nbi/4d/depth-cont-cvhull.csv.
../data/debmdk-nbi/8d/f.csv (3432, 8) ['..', 'data', 'debmdk-nbi', '8d'] debmdk-nbi Plotting palette-star-viz. Loading depth contours from ../data/debmdk-nbi/8d/depth-cont-cvhull.csv.
../data/debmdk-all/3d/f.csv (1000, 3) ['..', 'data', 'debmdk-all', '3d'] debmdk-all Plotting palette-star-viz. Loading depth contours from ../data/debmdk-all/3d/depth-cont-cvhull.csv.
../data/debmdk-all/4d/f.csv (2000, 4) ['..', 'data', 'debmdk-all', '4d'] debmdk-all Plotting palette-star-viz. Loading depth contours from ../data/debmdk-all/4d/depth-cont-cvhull.csv.
../data/debmdk-all/8d/f.csv (4000, 8) ['..', 'data', 'debmdk-all', '8d'] debmdk-all Plotting palette-star-viz. Loading depth contours from ../data/debmdk-all/8d/depth-cont-cvhull.csv.
../data/debmdk-all-nbi/3d/f.csv (990, 3) ['..', 'data', 'debmdk-all-nbi', '3d'] debmdk-all-nbi Plotting palette-star-viz. Loading depth contours from ../data/debmdk-all-nbi/3d/depth-cont-cvhull.csv.
../data/debmdk-all-nbi/4d/f.csv (1771, 4) ['..', 'data', 'debmdk-all-nbi', '4d'] debmdk-all-nbi Plotting palette-star-viz. Loading depth contours from ../data/debmdk-all-nbi/4d/depth-cont-cvhull.csv.
../data/debmdk-all-nbi/8d/f.csv (3432, 8) ['..', 'data', 'debmdk-all-nbi', '8d'] debmdk-all-nbi Plotting palette-star-viz. Loading depth contours from ../data/debmdk-all-nbi/8d/depth-cont-cvhull.csv.
../data/dtlz8/3d/f.csv (1038, 3) ['..', 'data', 'dtlz8', '3d'] dtlz8 Plotting palette-star-viz. Loading depth contours from ../data/dtlz8/3d/depth-cont-cvhull.csv.
../data/dtlz8/4d/f.csv (2105, 4) ['..', 'data', 'dtlz8', '4d'] dtlz8 Plotting palette-star-viz. Loading depth contours from ../data/dtlz8/4d/depth-cont-cvhull.csv.
../data/dtlz8/6d/f.csv (2659, 6) ['..', 'data', 'dtlz8', '6d'] dtlz8 Plotting palette-star-viz. Loading depth contours from ../data/dtlz8/6d/depth-cont-cvhull.csv.
../data/dtlz8/8d/f.csv (3680, 8) ['..', 'data', 'dtlz8', '8d'] dtlz8 Plotting palette-star-viz. Loading depth contours from ../data/dtlz8/8d/depth-cont-cvhull.csv.
../data/dtlz8-nbi/3d/f.csv (1025, 3) ['..', 'data', 'dtlz8-nbi', '3d'] dtlz8-nbi Plotting palette-star-viz. Loading depth contours from ../data/dtlz8-nbi/3d/depth-cont-cvhull.csv.
../data/dtlz8-nbi/4d/f.csv (2088, 4) ['..', 'data', 'dtlz8-nbi', '4d'] dtlz8-nbi Plotting palette-star-viz. Loading depth contours from ../data/dtlz8-nbi/4d/depth-cont-cvhull.csv.
../data/dtlz8-nbi/6d/f.csv (3535, 6) ['..', 'data', 'dtlz8-nbi', '6d'] dtlz8-nbi Plotting palette-star-viz. Loading depth contours from ../data/dtlz8-nbi/6d/depth-cont-cvhull.csv.
../data/dtlz8-nbi/8d/f.csv (2277, 8) ['..', 'data', 'dtlz8-nbi', '8d'] dtlz8-nbi Plotting palette-star-viz. Loading depth contours from ../data/dtlz8-nbi/8d/depth-cont-cvhull.csv.
../data/c2dtlz2/3d/f.csv (1086, 3) ['..', 'data', 'c2dtlz2', '3d'] c2dtlz2 Plotting palette-star-viz. Loading depth contours from ../data/c2dtlz2/3d/depth-cont-cvhull.csv.
../data/c2dtlz2/4d/f.csv (2088, 4) ['..', 'data', 'c2dtlz2', '4d'] c2dtlz2 Plotting palette-star-viz. Loading depth contours from ../data/c2dtlz2/4d/depth-cont-cvhull.csv.
../data/c2dtlz2/5d/f.csv (2098, 5) ['..', 'data', 'c2dtlz2', '5d'] c2dtlz2 Plotting palette-star-viz. Loading depth contours from ../data/c2dtlz2/5d/depth-cont-cvhull.csv.
../data/c2dtlz2/8d/f.csv (4305, 8) ['..', 'data', 'c2dtlz2', '8d'] c2dtlz2 Plotting palette-star-viz. Loading depth contours from ../data/c2dtlz2/8d/depth-cont-cvhull.csv.
../data/c2dtlz2-nbi/3d/f.csv (1036, 3) ['..', 'data', 'c2dtlz2-nbi', '3d'] c2dtlz2-nbi Plotting palette-star-viz. Loading depth contours from ../data/c2dtlz2-nbi/3d/depth-cont-cvhull.csv.
../data/c2dtlz2-nbi/4d/f.csv (1984, 4) ['..', 'data', 'c2dtlz2-nbi', '4d'] c2dtlz2-nbi Plotting palette-star-viz. Loading depth contours from ../data/c2dtlz2-nbi/4d/depth-cont-cvhull.csv.
../data/c2dtlz2-nbi/5d/f.csv (2280, 5) ['..', 'data', 'c2dtlz2-nbi', '5d'] c2dtlz2-nbi Plotting palette-star-viz. Loading depth contours from ../data/c2dtlz2-nbi/5d/depth-cont-cvhull.csv.
../data/c2dtlz2-nbi/8d/f.csv (3872, 8) ['..', 'data', 'c2dtlz2-nbi', '8d'] c2dtlz2-nbi Plotting palette-star-viz. Loading depth contours from ../data/c2dtlz2-nbi/8d/depth-cont-cvhull.csv.
../data/cdebmdk/3d/f.csv (1099, 3) ['..', 'data', 'cdebmdk', '3d'] cdebmdk Plotting palette-star-viz. Loading depth contours from ../data/cdebmdk/3d/depth-cont-cvhull.csv.
../data/cdebmdk/4d/f.csv (1982, 4) ['..', 'data', 'cdebmdk', '4d'] cdebmdk Plotting palette-star-viz. Loading depth contours from ../data/cdebmdk/4d/depth-cont-cvhull.csv.
../data/cdebmdk/8d/f.csv (3919, 8) ['..', 'data', 'cdebmdk', '8d'] cdebmdk Plotting palette-star-viz. Loading depth contours from ../data/cdebmdk/8d/depth-cont-cvhull.csv.
../data/cdebmdk-nbi/3d/f.csv (1049, 3) ['..', 'data', 'cdebmdk-nbi', '3d'] cdebmdk-nbi Plotting palette-star-viz. Loading depth contours from ../data/cdebmdk-nbi/3d/depth-cont-cvhull.csv.
../data/cdebmdk-nbi/4d/f.csv (2042, 4) ['..', 'data', 'cdebmdk-nbi', '4d'] cdebmdk-nbi Plotting palette-star-viz. Loading depth contours from ../data/cdebmdk-nbi/4d/depth-cont-cvhull.csv.
../data/cdebmdk-nbi/8d/f.csv (3380, 8) ['..', 'data', 'cdebmdk-nbi', '8d'] cdebmdk-nbi Plotting palette-star-viz. Loading depth contours from ../data/cdebmdk-nbi/8d/depth-cont-cvhull.csv.
../data/c0dtlz2/3d/f.csv (1002, 3) ['..', 'data', 'c0dtlz2', '3d'] c0dtlz2 Plotting palette-star-viz. Loading depth contours from ../data/c0dtlz2/3d/depth-cont-cvhull.csv.
../data/c0dtlz2/4d/f.csv (2003, 4) ['..', 'data', 'c0dtlz2', '4d'] c0dtlz2 Plotting palette-star-viz. Loading depth contours from ../data/c0dtlz2/4d/depth-cont-cvhull.csv.
../data/c0dtlz2/8d/f.csv (4005, 8) ['..', 'data', 'c0dtlz2', '8d'] c0dtlz2 Plotting palette-star-viz. Loading depth contours from ../data/c0dtlz2/8d/depth-cont-cvhull.csv.
../data/c0dtlz2-nbi/3d/f.csv (983, 3) ['..', 'data', 'c0dtlz2-nbi', '3d'] c0dtlz2-nbi Plotting palette-star-viz. Loading depth contours from ../data/c0dtlz2-nbi/3d/depth-cont-cvhull.csv.
../data/c0dtlz2-nbi/4d/f.csv (1916, 4) ['..', 'data', 'c0dtlz2-nbi', '4d'] c0dtlz2-nbi Plotting palette-star-viz. Loading depth contours from ../data/c0dtlz2-nbi/4d/depth-cont-cvhull.csv.
../data/c0dtlz2-nbi/8d/f.csv (3180, 8) ['..', 'data', 'c0dtlz2-nbi', '8d'] c0dtlz2-nbi Plotting palette-star-viz. Loading depth contours from ../data/c0dtlz2-nbi/8d/depth-cont-cvhull.csv.
../data/crash-nbi/3d/f.csv (1327, 3) ['..', 'data', 'crash-nbi', '3d'] crash-nbi Plotting palette-star-viz. Loading depth contours from ../data/crash-nbi/3d/depth-cont-cvhull.csv.
../data/crash-c1-nbi/3d/f.csv (274, 3) ['..', 'data', 'crash-c1-nbi', '3d'] crash-c1-nbi Plotting palette-star-viz. Loading depth contours from ../data/crash-c1-nbi/3d/depth-cont-cvhull.csv.
../data/crash-c2-nbi/3d/f.csv (1053, 3) ['..', 'data', 'crash-c2-nbi', '3d'] crash-c2-nbi Plotting palette-star-viz. Loading depth contours from ../data/crash-c2-nbi/3d/depth-cont-cvhull.csv.
../data/carside-nbi/3d/f.csv (592, 3) ['..', 'data', 'carside-nbi', '3d'] carside-nbi Plotting palette-star-viz. Loading depth contours from ../data/carside-nbi/3d/depth-cont-cvhull.csv.
../data/gaa-old/10d/f.csv (3112, 10) ['..', 'data', 'gaa-old', '10d'] gaa-old Plotting palette-star-viz. Loading depth contours from ../data/gaa-old/10d/depth-cont-cvhull.csv.
../data/gaa-old-nbi/10d/f.csv (3112, 10) ['..', 'data', 'gaa-old-nbi', '10d'] gaa-old-nbi Plotting palette-star-viz. Loading depth contours from ../data/gaa-old-nbi/10d/depth-cont-cvhull.csv.
../data/gaa-fmincon/10d/f.csv (3461, 10) ['..', 'data', 'gaa-fmincon', '10d'] gaa-fmincon Plotting palette-star-viz. Loading depth contours from ../data/gaa-fmincon/10d/depth-cont-cvhull.csv.
../data/gaa-fmincon-nbi/10d/f.csv (3566, 10) ['..', 'data', 'gaa-fmincon-nbi', '10d'] gaa-fmincon-nbi Plotting palette-star-viz. Loading depth contours from ../data/gaa-fmincon-nbi/10d/depth-cont-cvhull.csv.
../data/gaa-nsga3/10d/f.csv (1966, 10) ['..', 'data', 'gaa-nsga3', '10d'] gaa-nsga3 Plotting palette-star-viz. Loading depth contours from ../data/gaa-nsga3/10d/depth-cont-cvhull.csv.
../data/gaa-nsga3-nbi/10d/f.csv (1871, 10) ['..', 'data', 'gaa-nsga3-nbi', '10d'] gaa-nsga3-nbi Plotting palette-star-viz. Loading depth contours from ../data/gaa-nsga3-nbi/10d/depth-cont-cvhull.csv.
%matplotlib inline
from viz.plotting import paletteviz
from viz.plotting.paletteviz import camera_angles_radviz
pfs = {'dtlz2': ['3d', '4d', '8d'], \
'dtlz2-nbi': ['3d', '4d', '8d'], \
'debmdk': ['3d', '4d', '8d'], \
'debmdk-nbi': ['3d', '4d', '8d'], \
'debmdk-all': ['3d', '4d', '8d'], \
'debmdk-all-nbi': ['3d', '4d', '8d'], \
'dtlz8': ['3d', '4d', '6d', '8d'], \
'dtlz8-nbi': ['3d', '4d', '6d', '8d'], \
'c2dtlz2': ['3d', '4d', '5d', '8d'], \
'c2dtlz2-nbi': ['3d', '4d', '5d', '8d'], \
'cdebmdk': ['3d', '4d', '8d'], \
'cdebmdk-nbi': ['3d', '4d', '8d'], \
'c0dtlz2': ['3d', '4d', '8d'], \
'c0dtlz2-nbi': ['3d', '4d', '8d'], \
'crash-nbi': ['3d'], 'crash-c1-nbi': ['3d'], 'crash-c2-nbi': ['3d'], \
'carside-nbi': ['3d'], \
'gaa-old': ['10d'], 'gaa-old-nbi': ['10d'], \
'gaa-fmincon': ['10d'], 'gaa-fmincon-nbi': ['10d'], \
'gaa-nsga3': ['10d'], 'gaa-nsga3-nbi': ['10d']}
constrained_pfs = ['dtlz8', 'dtlz8-nbi', 'c2dtlz2', 'c2dtlz2-nbi', 'cdebmdk', 'cdebmdk-nbi', \
'c0dtlz2', 'c0dtlz2-nbi', 'carside-nbi', 'gaa-old', 'gaa-old-nbi', \
'gaa-fmincon', 'gaa-fmincon-nbi', 'gaa-nsga3', 'gaa-nsga3-nbi']
for pf in list(pfs.keys()):
for dim in pfs[pf]:
fullpathf = "../data/{0:s}/{1:s}/f.csv".format(pf, dim)
if os.path.exists(fullpathf):
path, filenamef = os.path.split(fullpathf)
dirs = path.split('/')
frontname = dirs[-2]
# load the front
F = np.loadtxt(fullpathf, delimiter=',')
print(fullpathf, F.shape, dirs, frontname)
# decide color and sizes
CV, Mu, Ik = load_props(path)
S,C,D = decide_size_color(pf, dim, CV, Mu, Ik)
# make indices for knee and non-knee points
I = np.zeros(F.shape[0]).astype(bool)
I[Ik] = True
Ip, Ik = ~I, I
# fix point labels
L = np.array(["" for _ in range(F.shape[0])]).astype(object)
L[Ip] = "All Other Points"
L[Ik] = "Knee Points"
# decide what label and gradient to use for the colorbar
if pf in constrained_pfs:
cbl = "Normalized Cumulative CV"
cbg = CV
else:
cbl = "Centroid Distance"
cbg = D
euler = camera_angles_radviz[pf][dim] if pf in camera_angles_radviz else [-60, 30]
figpath = os.path.join(path, "palette-radviz.pdf")
depth_contour_path = os.path.join(path, "depth-cont-cvhull.csv")
with plt.rc_context({"text.usetex": True, "font.size": 12}):
# plot
ax = Axes3D(plt.figure())
paletteviz.plot(F, ax=ax, depth_contours=depth_contour_path, mode='radviz', \
n_partitions=4, s=S, c=C, labels=L, euler=euler, \
colorbar=(C[Ip], cbg[Ip], cbl), verbose=True)
# minimal example
# paletteviz.plot(F, ax=ax, depth_contours=depth_contour_path, mode='star', n_partitions=4, \
# s=S, c=C, euler=camera_angles_star[pf][dim], verbose=True)
# try to remove white space as much as possible
plt.subplots_adjust(top=0.01, bottom=0, right=0.01, left=0, hspace=0, wspace=0)
# plt.margins(0,0,0)
# plt.gca().xaxis.set_major_locator(plt.NullLocator())
# plt.gca().yaxis.set_major_locator(plt.NullLocator())
# plt.gca().zaxis.set_major_locator(plt.NullLocator())
# save the fig
plt.savefig(figpath, bbox_inches='tight', dpi=150, pad_inches=0)
# show
plt.show()
../data/dtlz2/3d/f.csv (1000, 3) ['..', 'data', 'dtlz2', '3d'] dtlz2 Plotting palette-radviz. Loading depth contours from ../data/dtlz2/3d/depth-cont-cvhull.csv.
../data/dtlz2/4d/f.csv (2000, 4) ['..', 'data', 'dtlz2', '4d'] dtlz2 Plotting palette-radviz. Loading depth contours from ../data/dtlz2/4d/depth-cont-cvhull.csv.
../data/dtlz2/8d/f.csv (4000, 8) ['..', 'data', 'dtlz2', '8d'] dtlz2 Plotting palette-radviz. Loading depth contours from ../data/dtlz2/8d/depth-cont-cvhull.csv.
../data/dtlz2-nbi/3d/f.csv (990, 3) ['..', 'data', 'dtlz2-nbi', '3d'] dtlz2-nbi Plotting palette-radviz. Loading depth contours from ../data/dtlz2-nbi/3d/depth-cont-cvhull.csv.
../data/dtlz2-nbi/4d/f.csv (1771, 4) ['..', 'data', 'dtlz2-nbi', '4d'] dtlz2-nbi Plotting palette-radviz. Loading depth contours from ../data/dtlz2-nbi/4d/depth-cont-cvhull.csv.
../data/dtlz2-nbi/8d/f.csv (3432, 8) ['..', 'data', 'dtlz2-nbi', '8d'] dtlz2-nbi Plotting palette-radviz. Loading depth contours from ../data/dtlz2-nbi/8d/depth-cont-cvhull.csv.
../data/debmdk/3d/f.csv (1047, 3) ['..', 'data', 'debmdk', '3d'] debmdk Plotting palette-radviz. Loading depth contours from ../data/debmdk/3d/depth-cont-cvhull.csv.
../data/debmdk/4d/f.csv (1967, 4) ['..', 'data', 'debmdk', '4d'] debmdk Plotting palette-radviz. Loading depth contours from ../data/debmdk/4d/depth-cont-cvhull.csv.
../data/debmdk/8d/f.csv (4077, 8) ['..', 'data', 'debmdk', '8d'] debmdk Plotting palette-radviz. Loading depth contours from ../data/debmdk/8d/depth-cont-cvhull.csv.
../data/debmdk-nbi/3d/f.csv (1143, 3) ['..', 'data', 'debmdk-nbi', '3d'] debmdk-nbi Plotting palette-radviz. Loading depth contours from ../data/debmdk-nbi/3d/depth-cont-cvhull.csv.
../data/debmdk-nbi/4d/f.csv (2028, 4) ['..', 'data', 'debmdk-nbi', '4d'] debmdk-nbi Plotting palette-radviz. Loading depth contours from ../data/debmdk-nbi/4d/depth-cont-cvhull.csv.
../data/debmdk-nbi/8d/f.csv (3432, 8) ['..', 'data', 'debmdk-nbi', '8d'] debmdk-nbi Plotting palette-radviz. Loading depth contours from ../data/debmdk-nbi/8d/depth-cont-cvhull.csv.
../data/debmdk-all/3d/f.csv (1000, 3) ['..', 'data', 'debmdk-all', '3d'] debmdk-all Plotting palette-radviz. Loading depth contours from ../data/debmdk-all/3d/depth-cont-cvhull.csv.
../data/debmdk-all/4d/f.csv (2000, 4) ['..', 'data', 'debmdk-all', '4d'] debmdk-all Plotting palette-radviz. Loading depth contours from ../data/debmdk-all/4d/depth-cont-cvhull.csv.
../data/debmdk-all/8d/f.csv (4000, 8) ['..', 'data', 'debmdk-all', '8d'] debmdk-all Plotting palette-radviz. Loading depth contours from ../data/debmdk-all/8d/depth-cont-cvhull.csv.
../data/debmdk-all-nbi/3d/f.csv (990, 3) ['..', 'data', 'debmdk-all-nbi', '3d'] debmdk-all-nbi Plotting palette-radviz. Loading depth contours from ../data/debmdk-all-nbi/3d/depth-cont-cvhull.csv.
../data/debmdk-all-nbi/4d/f.csv (1771, 4) ['..', 'data', 'debmdk-all-nbi', '4d'] debmdk-all-nbi Plotting palette-radviz. Loading depth contours from ../data/debmdk-all-nbi/4d/depth-cont-cvhull.csv.
../data/debmdk-all-nbi/8d/f.csv (3432, 8) ['..', 'data', 'debmdk-all-nbi', '8d'] debmdk-all-nbi Plotting palette-radviz. Loading depth contours from ../data/debmdk-all-nbi/8d/depth-cont-cvhull.csv.
../data/dtlz8/3d/f.csv (1038, 3) ['..', 'data', 'dtlz8', '3d'] dtlz8 Plotting palette-radviz. Loading depth contours from ../data/dtlz8/3d/depth-cont-cvhull.csv.
../data/dtlz8/4d/f.csv (2105, 4) ['..', 'data', 'dtlz8', '4d'] dtlz8 Plotting palette-radviz. Loading depth contours from ../data/dtlz8/4d/depth-cont-cvhull.csv.
../data/dtlz8/6d/f.csv (2659, 6) ['..', 'data', 'dtlz8', '6d'] dtlz8 Plotting palette-radviz. Loading depth contours from ../data/dtlz8/6d/depth-cont-cvhull.csv.
../data/dtlz8/8d/f.csv (3680, 8) ['..', 'data', 'dtlz8', '8d'] dtlz8 Plotting palette-radviz. Loading depth contours from ../data/dtlz8/8d/depth-cont-cvhull.csv.
../data/dtlz8-nbi/3d/f.csv (1025, 3) ['..', 'data', 'dtlz8-nbi', '3d'] dtlz8-nbi Plotting palette-radviz. Loading depth contours from ../data/dtlz8-nbi/3d/depth-cont-cvhull.csv.
../data/dtlz8-nbi/4d/f.csv (2088, 4) ['..', 'data', 'dtlz8-nbi', '4d'] dtlz8-nbi Plotting palette-radviz. Loading depth contours from ../data/dtlz8-nbi/4d/depth-cont-cvhull.csv.
../data/dtlz8-nbi/6d/f.csv (3535, 6) ['..', 'data', 'dtlz8-nbi', '6d'] dtlz8-nbi Plotting palette-radviz. Loading depth contours from ../data/dtlz8-nbi/6d/depth-cont-cvhull.csv.
../data/dtlz8-nbi/8d/f.csv (2277, 8) ['..', 'data', 'dtlz8-nbi', '8d'] dtlz8-nbi Plotting palette-radviz. Loading depth contours from ../data/dtlz8-nbi/8d/depth-cont-cvhull.csv.
../data/c2dtlz2/3d/f.csv (1086, 3) ['..', 'data', 'c2dtlz2', '3d'] c2dtlz2 Plotting palette-radviz. Loading depth contours from ../data/c2dtlz2/3d/depth-cont-cvhull.csv.
../data/c2dtlz2/4d/f.csv (2088, 4) ['..', 'data', 'c2dtlz2', '4d'] c2dtlz2 Plotting palette-radviz. Loading depth contours from ../data/c2dtlz2/4d/depth-cont-cvhull.csv.
../data/c2dtlz2/5d/f.csv (2098, 5) ['..', 'data', 'c2dtlz2', '5d'] c2dtlz2 Plotting palette-radviz. Loading depth contours from ../data/c2dtlz2/5d/depth-cont-cvhull.csv.
../data/c2dtlz2/8d/f.csv (4305, 8) ['..', 'data', 'c2dtlz2', '8d'] c2dtlz2 Plotting palette-radviz. Loading depth contours from ../data/c2dtlz2/8d/depth-cont-cvhull.csv.
../data/c2dtlz2-nbi/3d/f.csv (1036, 3) ['..', 'data', 'c2dtlz2-nbi', '3d'] c2dtlz2-nbi Plotting palette-radviz. Loading depth contours from ../data/c2dtlz2-nbi/3d/depth-cont-cvhull.csv.
../data/c2dtlz2-nbi/4d/f.csv (1984, 4) ['..', 'data', 'c2dtlz2-nbi', '4d'] c2dtlz2-nbi Plotting palette-radviz. Loading depth contours from ../data/c2dtlz2-nbi/4d/depth-cont-cvhull.csv.
../data/c2dtlz2-nbi/5d/f.csv (2280, 5) ['..', 'data', 'c2dtlz2-nbi', '5d'] c2dtlz2-nbi Plotting palette-radviz. Loading depth contours from ../data/c2dtlz2-nbi/5d/depth-cont-cvhull.csv.
../data/c2dtlz2-nbi/8d/f.csv (3872, 8) ['..', 'data', 'c2dtlz2-nbi', '8d'] c2dtlz2-nbi Plotting palette-radviz. Loading depth contours from ../data/c2dtlz2-nbi/8d/depth-cont-cvhull.csv.
../data/cdebmdk/3d/f.csv (1099, 3) ['..', 'data', 'cdebmdk', '3d'] cdebmdk Plotting palette-radviz. Loading depth contours from ../data/cdebmdk/3d/depth-cont-cvhull.csv.
../data/cdebmdk/4d/f.csv (1982, 4) ['..', 'data', 'cdebmdk', '4d'] cdebmdk Plotting palette-radviz. Loading depth contours from ../data/cdebmdk/4d/depth-cont-cvhull.csv.
../data/cdebmdk/8d/f.csv (3919, 8) ['..', 'data', 'cdebmdk', '8d'] cdebmdk Plotting palette-radviz. Loading depth contours from ../data/cdebmdk/8d/depth-cont-cvhull.csv.
../data/cdebmdk-nbi/3d/f.csv (1049, 3) ['..', 'data', 'cdebmdk-nbi', '3d'] cdebmdk-nbi Plotting palette-radviz. Loading depth contours from ../data/cdebmdk-nbi/3d/depth-cont-cvhull.csv.
../data/cdebmdk-nbi/4d/f.csv (2042, 4) ['..', 'data', 'cdebmdk-nbi', '4d'] cdebmdk-nbi Plotting palette-radviz. Loading depth contours from ../data/cdebmdk-nbi/4d/depth-cont-cvhull.csv.
../data/cdebmdk-nbi/8d/f.csv (3380, 8) ['..', 'data', 'cdebmdk-nbi', '8d'] cdebmdk-nbi Plotting palette-radviz. Loading depth contours from ../data/cdebmdk-nbi/8d/depth-cont-cvhull.csv.
../data/c0dtlz2/3d/f.csv (1002, 3) ['..', 'data', 'c0dtlz2', '3d'] c0dtlz2 Plotting palette-radviz. Loading depth contours from ../data/c0dtlz2/3d/depth-cont-cvhull.csv.
../data/c0dtlz2/4d/f.csv (2003, 4) ['..', 'data', 'c0dtlz2', '4d'] c0dtlz2 Plotting palette-radviz. Loading depth contours from ../data/c0dtlz2/4d/depth-cont-cvhull.csv.
../data/c0dtlz2/8d/f.csv (4005, 8) ['..', 'data', 'c0dtlz2', '8d'] c0dtlz2 Plotting palette-radviz. Loading depth contours from ../data/c0dtlz2/8d/depth-cont-cvhull.csv.
../data/c0dtlz2-nbi/3d/f.csv (983, 3) ['..', 'data', 'c0dtlz2-nbi', '3d'] c0dtlz2-nbi Plotting palette-radviz. Loading depth contours from ../data/c0dtlz2-nbi/3d/depth-cont-cvhull.csv.
../data/c0dtlz2-nbi/4d/f.csv (1916, 4) ['..', 'data', 'c0dtlz2-nbi', '4d'] c0dtlz2-nbi Plotting palette-radviz. Loading depth contours from ../data/c0dtlz2-nbi/4d/depth-cont-cvhull.csv.
../data/c0dtlz2-nbi/8d/f.csv (3180, 8) ['..', 'data', 'c0dtlz2-nbi', '8d'] c0dtlz2-nbi Plotting palette-radviz. Loading depth contours from ../data/c0dtlz2-nbi/8d/depth-cont-cvhull.csv.
../data/crash-nbi/3d/f.csv (1327, 3) ['..', 'data', 'crash-nbi', '3d'] crash-nbi Plotting palette-radviz. Loading depth contours from ../data/crash-nbi/3d/depth-cont-cvhull.csv.
../data/crash-c1-nbi/3d/f.csv (274, 3) ['..', 'data', 'crash-c1-nbi', '3d'] crash-c1-nbi Plotting palette-radviz. Loading depth contours from ../data/crash-c1-nbi/3d/depth-cont-cvhull.csv.
../data/crash-c2-nbi/3d/f.csv (1053, 3) ['..', 'data', 'crash-c2-nbi', '3d'] crash-c2-nbi Plotting palette-radviz. Loading depth contours from ../data/crash-c2-nbi/3d/depth-cont-cvhull.csv.
../data/carside-nbi/3d/f.csv (592, 3) ['..', 'data', 'carside-nbi', '3d'] carside-nbi Plotting palette-radviz. Loading depth contours from ../data/carside-nbi/3d/depth-cont-cvhull.csv.
../data/gaa-old/10d/f.csv (3112, 10) ['..', 'data', 'gaa-old', '10d'] gaa-old Plotting palette-radviz. Loading depth contours from ../data/gaa-old/10d/depth-cont-cvhull.csv.
../data/gaa-old-nbi/10d/f.csv (3112, 10) ['..', 'data', 'gaa-old-nbi', '10d'] gaa-old-nbi Plotting palette-radviz. Loading depth contours from ../data/gaa-old-nbi/10d/depth-cont-cvhull.csv.
../data/gaa-fmincon/10d/f.csv (3461, 10) ['..', 'data', 'gaa-fmincon', '10d'] gaa-fmincon Plotting palette-radviz. Loading depth contours from ../data/gaa-fmincon/10d/depth-cont-cvhull.csv.
../data/gaa-fmincon-nbi/10d/f.csv (3566, 10) ['..', 'data', 'gaa-fmincon-nbi', '10d'] gaa-fmincon-nbi Plotting palette-radviz. Loading depth contours from ../data/gaa-fmincon-nbi/10d/depth-cont-cvhull.csv.
../data/gaa-nsga3/10d/f.csv (1966, 10) ['..', 'data', 'gaa-nsga3', '10d'] gaa-nsga3 Plotting palette-radviz. Loading depth contours from ../data/gaa-nsga3/10d/depth-cont-cvhull.csv.
../data/gaa-nsga3-nbi/10d/f.csv (1871, 10) ['..', 'data', 'gaa-nsga3-nbi', '10d'] gaa-nsga3-nbi Plotting palette-radviz. Loading depth contours from ../data/gaa-nsga3-nbi/10d/depth-cont-cvhull.csv.